home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / docs / ippon / eshot / 1 / eshot.lzh / eshot.c next >
C/C++ Source or Header  |  2000-07-07  |  2KB  |  65 lines

  1. /* eshot.c */
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <conio.h>
  6. #include <sys/iocs.h>
  7. #include "XSP2lib.H"
  8.  
  9. #define PCG_MAX    32        /* パターンデータの個数 */
  10.  
  11. static char pcg_alt[PCG_MAX + 1];    /* PCG配置管理テーブル */
  12. static char pcg_dat[PCG_MAX * 128];    /* PCGデータファイル読み込みバッファ */
  13.  
  14. static unsigned short pal_dat[16][15];    /* パレットデータ */
  15.  
  16.  
  17. int main (int argc, char *argv[])
  18. {
  19.     FILE *fp;
  20.     int i, j;
  21.  
  22.     _iocs_crtmod (10);    /* 256x256ドット グラフィック画面 256色 2画面 */
  23.     _iocs_sp_init ();    /* スプライトの初期化 */
  24.     _iocs_sp_on ();
  25.  
  26.     /* pcg_dat にパターンデータを読み込む */
  27.     fp = fopen ("ESHOT.SP", "rb");
  28.     fread (pcg_dat, sizeof (char), PCG_MAX * 128, fp);
  29.     fclose (fp);
  30.  
  31.  
  32.     /* pal_buf に一旦パレットデータを読み込む */
  33.     fp = fopen ("ESHOT.PAL", "rb");
  34.     fread (pal_dat, sizeof (unsigned short), 16 * 15, fp);
  35.     fclose (fp);
  36.     /* パレットデータを定義 */
  37.     /* (1パレットブロック=16色) × (15ブロックぶん) 定義する */
  38.     {
  39.         unsigned short *p = (unsigned short *) pal_dat;
  40.         for (i = 1; i < 15; i++)
  41.             for (j = 0; j < 16; j++)
  42.                 _iocs_spalet (0x80000000 | j, i, *p++);
  43.     }
  44.  
  45.     xsp_on ();
  46.     xsp_mode (3);
  47.     /* パターンデータを定義 */
  48.     xsp_pcgdat_set (pcg_dat, pcg_alt, sizeof (pcg_alt));
  49.  
  50.     /* 座標(128,144), スプライト No.3, パレット3, 優先順位 $3f */
  51.     xsp_set (128, 144, 3, 0x033f);
  52.     /* 座標(144,144), スプライト No.5, パレット3, 優先順位 $3f */
  53.     xsp_set (144, 144, 5, 0x033f);
  54.     /* 座標(160,144), スプライト No.9, パレット3, 優先順位 $3f */
  55.     xsp_set (160, 144, 9, 0x033f);
  56.     xsp_out ();    /* 表示 */
  57.  
  58.     printf("何かキーを押して下さい\n");
  59.     getche ();
  60.     xsp_off ();
  61.  
  62.     _iocs_crtmod (16);
  63.     return (0);
  64. }
  65.